""""""
"""
递归
递归: 方法(函数)自己调用自己的的一种特殊的编程写法
"""
def 示例():
    if True:
        示例()
# 函数自己调用自己,就是递归


"""
下面案例 递归的方法找出一个文件夹里的所有文件,包括子文件夹里的文件
"""
import os


def 演示_os():
    """演示OS模板,基本用法"""
    print(os.listdir('D:/python黑马'))  # 显示文件里的文件和文件夹
    print(os.path.isdir('D:/python黑马/.idea'))  # 判断这个文件是不是文件夹
    print(os.path.exists('D:/python黑马/.idea'))  # 判断这个文件是否存在


def 递归获取文件列表(文件夹路径):
    """
    使用递归的方式获取,一个文件夹里全部的文件信息(包括子文件夹)
    :param 文件夹路径: 被传入的文件夹路径
    :return: 列表
    """
    print(f"当前判断的文件是:{文件夹路径}")
    文件信息 = []
    if os.path.exists(文件夹路径):  # 先判断传入的文件夹是否存在
        for 文件 in os.listdir(文件夹路径):
            子文件路径 = 文件夹路径 + "/" + 文件  # 组合子文件路径
            if os.path.isdir(子文件路径):  # 如果判定是文件夹, 执行递归(自己调用自己)
                文件信息1 = 递归获取文件列表(子文件路径)
                文件信息.append(文件信息1)

            else:
                文件信息.append(子文件路径)  # 文件信息录入

    else:
        print(f"{文件夹路径} 文件不存在")
        return []  # 空列表

    return 文件信息


文件信息 = 递归获取文件列表('D:/python黑马')
print(文件信息)


# if __name__ == '__main__':
#     演示_os()
